#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/8/5 14:31
# @Author : luhongxuan
# @Site :
# @File : auth.py
# @Software: PyCharm


class ListHandler(object):
    @staticmethod
    def find_all(source_list, func):
        """
            查询列表中满足条件的所有元素
        :param target:
        :param func:
        :return:
        """
        target = list()
        for item in source_list:
            if func(item):
                target.append(item)
        return target

    @staticmethod
    def count(source_list, func):
        """
            查询列表中满足条件的所有元素
        :param target:
        :param func:
        :return:
        """
        target = list()
        for item in source_list:
            if func(item):
                target.append(item)
        return len(target)

    @staticmethod
    def first(source_list, func_condition):
        """
        找到符合条件的第一条记录
        :param source_list:
        :param func_condition:
        :return:
        """
        for item in source_list:
            if func_condition(item):
                return item

    @staticmethod
    def exists(source_list, func_condition):
        """
        判断是否存在符合条件的数据
        :param source_list:
        :param func_condition:
        :return:
        """
        for item in source_list:
            if func_condition(item):
                return True
        return False
